Docs: Document Helpers for New Developers#132
Merged
coxmars merged 2 commits intoAkatsukiLabs:mainfrom Jun 12, 2025
Merged
Conversation
coxmars
requested changes
Jun 7, 2025
|
|
||
| ## Game System Example: | ||
|
|
||
| ```cairo |
Contributor
There was a problem hiding this comment.
@sotoJ24 fix this code, use examples from the codebase with the correct syntax please
use super::helpers::pseudo_random::PseudoRandom::generate_random_u8;
#[system]
fn spawn_enemy(ctx: Context, entity_id: u32) {
// Generate a pseudo-random strength value between 10 and 20
let salt: u16 = 42; // this can vary (tick, position, etc.)
let unique_id: u16 = entity_id.try_into().unwrap();
let strength: u8 = generate_random_u8(unique_id, salt, 10, 20);
// Delegate spawning to another helper
spawn_enemy_with_strength(ctx.world, entity_id, strength);
}
pub fn spawn_enemy_with_strength(world: WorldDispatcher, entity_id: u32, strength: u8) {
// Logic to spawn an enemy entity and attach a Strength component
world.set_component::<components::Strength>(entity_id, strength.into());
world.set_component::<components::EnemyTag>(entity_id, ());
}
Contributor
|
@sotoJ24 fix the changes and them we can merge |
Contributor
Author
|
Perfect, On it |
Contributor
Author
|
Done, please review |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request Overview
📝 Summary
This PR adds new documentation for Helper Functions in the Dojo Engine, including detailed explanations, best practices, a real-world example using
pseudo_random.cairo, and integration notes with gameplay logic. It aims to improve developer understanding and encourage cleaner, reusable code practices.Related Issues
Type of Change
🔄 Changes Made
What's Changed
Created a new section: "Helper Functions in Dojo Engine"
Added:
generate_random_u8()inpseudo_random.cairosaltusage for randomnessImplementation Details
pseudo_randomspawn_enemy_with_strengthTechnical Notes
🔧 Tests Results
Test Coverage
Evidence
generate_random_u8compiles and works as expected in the game system exampleTesting Notes